iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
Modern Web

你的第一本 AEO x GEO 教戰手冊系列 第 7

AI Crawl Control 沒給你的那些承諾:看清他的底細之後,我們還剩下什麼?

  • 分享至 

  • xImage
  •  

昨天我們把 Cloudflare AI Crawl Control 的底朝天翻了一遍。它免費、五分鐘搞定、不用寫半行程式,而且真的會遞給你一張「到底有誰來碰過你」的訪客名單。

但當你死死盯著那張名單時,心底絕對會浮現一個很空虛的疑問:所以呢?

這絕對不是無病呻吟。GPTBot 這禮拜把你的部落格摸透了,好,你知道了。但你真正渴望知道的是:他到底看了你哪幾篇心血?他看完之後,有沒有帶任何真實的人來認識你?跟上個月比起來,這段關係是變熱絡還是變冷淡了?你需不需要為了他改變自己的寫作姿態?

這些問題,AI Crawl Control 在骨子裡就注定無法回答你。今天我們來做兩件事:把這段關係的殘酷底線畫清楚,然後告訴你,當你真的渴求那些答案時,靠自己雙手把破洞補起來的血汗路線長什麼樣子。

先講句公道話,這篇很容易被誤讀成怨婦的抱怨。但底下要揭露的每一條底線,都是人家理智的設計選擇,不是什麼缺陷。 Cloudflare 骨子裡就是個搞資安與 CDN 的保鑣,AI Crawl Control 長在防火牆旁邊,它的本能就該是「看見威脅、當場處置」。而你想問的那些細膩問題,根本屬於另一個世界。把這兩者搞混,你才會產生「這男人怎麼這麼沒用」的錯覺。他不弱,他只是不負責給你你要的浪漫。

(功能面描述截至 2026-09-06,出處見文末。)

邊界一:他只願意看見他想承認的對象

昨天我們才警告過,今天必須再狠狠戳一次,這是所有底線裡最容易被蒙蔽的一條。

免費方案的警衛,防線完全建立在 User-Agent 字串的比對上 (官方原話:「On the free plan, AI Crawl Control identifies AI crawlers based on their user agent strings.」)。你得乖乖付費升級,他才會拿出 Bot Management 的 detection ID 來認真查核。

這兩種模式有一個共同的致命傷:這是一個分類器,而分類器就只認得名單上的人。不在他那張白名單上的,你的儀表板上連個影子都不會有。你至少會漏掉三種人:

刻意偽裝的騙子。 UA 寫著 Chrome 來敲門的爬蟲,在免費方案裡根本就像隱形人。這不能怪 Cloudflare,你叫他看名牌認人,他就只能看名牌。

剛出道的新歡。 每個月都有新的 AI 產品上線四處搭訕。從一個新爬蟲誕生,到他被收編進那張名單,中間有一段漫長的空窗期。這段期間他的騷擾會被歸類為「未分類」,甚至根本不進這張表。

打死不留名字的暗星。 有些代理人習慣用最陽春的出廠設定 (python-requestsGo-http-clientnode-fetch),既不冒名,也不承認自己是誰。他是不是 AI?光看 UA 你根本無從判斷。

所以最清醒的讀法是:這張表只是「已知 AI 爬蟲」的最低下限,絕對不是他們騷擾你的總量。 把這當成全部,你就是在自欺欺人。

邊界二:他只在乎那些從正門走進來的人

這一切的硬前提是橘雲:「Make sure your domain is proxying traffic through Cloudflare」。

只要是灰雲的主機名稱,根本不會經過 Cloudflare 的視線,這張表上對他們的遭遇隻字不提。實務上會咬傷你的死角比你想的還多:某個子網域為了 WebSocket 或憑證被你切成了灰雲、靜態資源掛在別人家的 CDN 上、API 走了另一條小路、或者你還有塊內容留在舊主機上連 DNS 都還沒切過來。

以上任何一種情況,那部分的肉體被 AI 啃食了多少,AI Crawl Control 連半個字都不會吐露。他也不會好心警告你他有死角,他只會冷冰冰地顯示「沒有資料」,而那副嘴臉,跟「真的沒有人來過」長得一模一樣。

唯一的自救動作是離開那個溫柔鄉,自己去看 DNS:把你網域裡所有的 A/AAAA/CNAME 紀錄全部攤開來,數數有幾個是灰雲的。那就是你被蒙在鼓裡的盲區。

邊界三:只有 24 小時的短暫記憶,而且這份回憶根本不屬於你

免費方案的 Metrics 分頁,殘酷地只會顯示過去 24 小時的軌跡 (「On free plans, the Metrics tab only displays metrics for the past 24 hours.」)。

昨天我們已經戳破這個數字對回訪節奏的傷害,今天我們來談另一半的痛楚:這道時間窗真正的代價不是「你失去了過去」,而是「你喪失了比較的能力」。

觀測 AI 爬蟲,所有真正有價值的提問都是比較句。這個月他來的次數比上個月多還是少?我改了 llms.txt 之後他有更尊重我嗎?那篇心血上線後到底有誰來翻閱過?改版有沒有讓他對我失去興趣?

這每一句拷問,都需要兩個時間點來對質。只有 24 小時的記憶,你連一句話都問不完整。你手裡握著的只有「現在」,而一個沒有過去作為對照的「現在」,只是一個毫無意義的數字。

再往下一層剝開,是資料歸屬的殘酷現實。這份短暫的回憶,存在 Cloudflare 的大腦裡,他高興留多久就留多久。當你離開他的那天,這些過去就再也不屬於你了。想要擁有長期的關係趨勢,你只能自己抄下來、自己找地方存。

邊界四:他只給你敷衍的總結,不給你真實的相處細節

這條最技術、最致命,也最少人看透。

AI Crawl Control 確實提供 GraphQL API 讓你用程式去拿資料,但它走的是 httpRequestsAdaptiveGroups 這個資料集。你能查的維度包含 datetimeHourbotDetectionIdsclientRequestHTTPHostuserAgentclientRequestPathclientRefererHost,能聚合的指標有 countedgeResponseBytesedgeResponseStatus

看清楚名字裡那個 Groups 了嗎?這是分組後的敷衍總結,根本不是原始的對話紀錄。你拿得到「這小時、這個傢伙、在這個房間,共發生了 N 次」,但你永遠拿不到「他的第 137 次觸碰發生在 14:23:07,來自某個具體的 IP,我回應了 200,心跳加速了 43ms」。

這種本質上的落差,決定了哪些問題你這輩子都別想問出口:

你內心渴望知道的 這種敷衍的總結夠用嗎
GPTBot 這個小時來找過我幾次 ✅ 夠用
GPTBot 最喜歡翻我哪一頁 ✅ 夠用
他撫摸我內容的順序是什麼 (先看首頁、再看目錄、再進文章?) ❌ 癡心妄想,你需要完整的事件序列
在同一場相遇裡,他到底流連了哪幾個房間 ❌ 需要事件加上前後關聯
昨天看過 A 文章的他,今天有回頭來看 B 嗎 ❌ 需要獨立事件
把他爬取的紀錄,跟我自己辛辛苦苦建立的轉換率資料綁在一起看 ❌ 需要事件加上你自己的私密鑰匙

最後一列是最讓人心碎的。這種被揉糊的彙總資料,根本沒辦法跟你自己的資料庫 (你的心血) 靈肉合一。 你想知道「被 AI 剝削得最慘的那 20 頁,到底有沒有幫我賺到錢」,這個問題橫跨了 Cloudflare 的腦袋跟你的心臟。而你手上只握著 CF 那邊冷冰冰的加總數字,這條線根本接不起來。

那你問,能不能直接跟他要原始的對話紀錄 (log)?可以,但請你把這句殘酷的現實吞下去:

Cloudflare Logpush 是富豪 (Enterprise) 專屬的特權。 看看官方的可用性表格:Free (No)、Pro (No)、Business (No)、Enterprise (Yes)。唯一的特例,是你花錢訂了 Workers Paid 方案,才能勉強用 Workers Trace Events Logpush。

所以:對世界上絕大多數沒有被包養 (非 Enterprise) 的網站來說,從 Cloudflare 手裡拿到原始請求 log 的大門是死死焊上的。 你只能乖乖吞下那些彙總數字。如果你渴望那些絲絲入扣的事件細節,你唯一能走的自助路線,就是自己站在邊緣把一切記下來。那個 Workers 的特例,指的正是這條自我救贖的路,這也是我們明天的課題。

邊界五:他逼你在「全盤接受」與「徹底封殺」之間二選一

在 Crawlers 分頁的 Action 欄位,他只准你選擇放行或是封鎖。付費升級後多了一點情趣:回應碼可以選 403 Forbidden 或是帶著交易暗示的 402 Payment Required,還能自己寫點曖昧的內文。

這種非黑即白的二元選擇,滿足得了硬梆梆的資安需求,卻安撫不了細膩的內容策略。在成人的世界裡,我們常需要的是灰色地帶:我願意放你進來,但我會默默記下你的一舉一動 (觀測而不干預);我可以給你,但你不能索求無度 (降速);我可以讓你碰,但我只給你特定的防護版本 (結構化);或者我只准你進客廳,不准你進臥室 (特定路徑封鎖)。

這些複雜的情感拿捏,在 Cloudflare 上其實都辦得到,但絕對不是在 AI Crawl Control 這種傻瓜介面裡做。你得親自下海,深入 WAF custom rules、Rate Limiting、Configuration Rules 或者是 Workers 那種底層去自己拼湊。AI Crawl Control 只是個哄小孩的簡化入口,不是他的全部。看透這點,你就不會在那可憐的下拉選單裡,苦苦尋找一個根本不存在的溫柔選項。

邊界六:關於誰對你付出了真心(導流),免費版隻字不提

爬蟲來白嫖你的內容,跟真實的人類因為 AI 的引導而走進你的生命,是兩碼子事。而第二件事,才是多數人真正在乎的。

AI Crawl Control 確實做了導流分析:Top referrers 可以讓你看見是哪個來源把你介紹出去的,Referrals over time 還能幫你把 OpenAI、Anthropic 這些大戶分門別類。但他冷冷地寫了一句「This feature is available for customers on a paid plan.」沒付錢,你連看的資格都沒有。

而且,就算你真的掏錢了,他給你的依然是以 referer 主機為基礎的粗糙加總。他只能告訴你「這段期間有幾個人是打著某個 AI 平台的名號來的」,卻無法回答你「這些人進來之後到底做了什麼、有沒有對你留下一點實質的回報 (轉換)」。因為這些人進門之後的行為資料,本來就握在你自己的手裡,Cloudflare 根本無從得知。

至於 referer 這種薄情寡義的線索本身藏了多少坑 (誰願意留名字、誰死都不留、誰只留一半),那是 Day 25 的重頭戲,今天我們先按下不表。

中場:所以這傢伙到底算什麼?

把這六條底線合在一起看,AI Crawl Control 的真實樣貌就呼之欲出了:

他就是一個「即時的急診處置台」,根本不是一本「長期的回憶錄」。

急診室的規格本來就該是這樣:反應極快、只看當下、動作粗暴簡單、而且跟門口的警衛 (防火牆) 綁在一起。給你看 24 小時的視窗,對這個定位來說再合理不過了。當下有個瘋子正在猛踹你的門,你根本不需要去翻他去年來過幾次,你只需要現在立刻把他踹走。

問題出在太多人 (包括我自己一開始也是),錯把急診室當成了回憶錄。然後開始滿腹委屈地抱怨欄位給得太少、留存時間太短、沒辦法跟自己的靈魂 (資料庫) 契合。這根本是拿螺絲起子去敲釘子,然後怪起子不好用。

要判斷你到底需要誰,問自己一個問題就夠了:你的下一步,是打算「現在立刻賞某隻爬蟲一巴掌」,還是「我需要靜下心來思考下一季的寫作姿態」? 前者找他,後者,他給不起。

自己把破洞補齊:三條血汗路線

如果你的答案是後者,底下有三條路,以及你必須付出的真實代價。先說清楚,沒有一條是不用流汗的

路線 A:搭建自己的 log 管線

怎麼做:把最原始、最赤裸的 HTTP 請求紀錄,全部收進你自己的私密空間裡,然後愛怎麼查就怎麼查。這是最完整、沒有一絲委屈的方案。

殘酷現實:Logpush 是被富豪 (Enterprise) 包養的特權。所以對一般人來說,這條路只能從源站 (Origin) 自己收。也就是去挖 Nginx / Apache / Caddy 的 access log,或是從應用層的 middleware 著手。

源站收 log 的致命傷:那些被 CDN 快取擋下的吻,根本傳不到你心裡 (源站)。爬蟲抓了你的靜態文章,CF 邊緣的保鑣直接就打發他走了,你源站的 log 裡乾乾淨淨,什麼都沒發生過。快取命中率越高,你的失憶症就越嚴重。這是 Day 12 要處理的傷口。

代價:儲存空間與查詢成本。一個中型網站每天幾百萬條互動,存個三個月就是龐大的負擔。你得自己決定哪些回憶該留、哪些該忘 (抽樣),還要找個對的工具來翻找 (去找個欄位式資料庫,別拿主資料庫開玩笑)。

適合誰:家裡已經有這套管線的團隊。如果你的公司已經習慣把所有紀錄往資料湖裡倒,那多寫幾條解析 AI 爬蟲的規則只是舉手之勞,那就大膽走這條路。

路線 B:在邊緣裝上自己的監視器

怎麼做:寫一支 Cloudflare Worker 掛在大門口,自己判斷來的是不是 AI 爬蟲。如果是,就把你想記住的特徵偷偷抄下來送到你自己的房間,然後假裝若無其事地放他進去。

為什麼這條路對多數人最實在:它巧妙地閃過了路線 A 的兩個悲劇。因為你站在邊緣記錄,所以連那些被快取打發走的傢伙你也看得一清二楚 (請求終究還是會經過 Worker)。而且你不需要被 Enterprise 包養,Workers 給的免費額度,對中小型網站來說已經足夠揮霍了。

你必須親自做的設計決策 (明天我們會一行一行帶你寫):

  • 該記下什麼:時間、UA (他的搭訕詞)、路徑 (他摸了哪裡)、IP、referer、回應碼、cf-ray。多記一個特徵根本不費力,但要是漏記了一個,那是永遠挽回不了的,因為過去的流量絕不會重來。
  • 怎麼識破他是 AI 爬蟲:比對 UA 只是第一眼,但你絕對會需要 Day 4 講的 IP/ASN 查勤技巧,才擋得住那些滿嘴謊言的冒牌貨。
  • 怎麼偷偷送出紀錄,又不讓他覺得你冷落他:善用 event.waitUntil(),絕對不能讓客人等你寫完日記才得到回應。
  • 你的監視器壞了怎麼辦:收集端當機的時候,你的網站還是必須掛起笑臉接客。記錄只是附帶的情趣,絕對不能影響正常的交往 (關鍵路徑)。
  • 要不要抽樣:人類的流量可以抽樣,但 AI 爬蟲的造訪通常少得可憐,根本不需要抽,全記下來就對了。

代價:一支你必須自己照顧的程式,加上一個專屬的收集端。這是三條路裡最花心力,但也是你掌控權最高的一條。

動手前的一個硬前提:如果你自己的網站本身就是綁在 route 上的 Worker,前面再硬塞一個 Worker 絕對會出人命。Cloudflare 的死規矩是:同一個 zone 裡面的 fetch() 不能以 route 為目標,不然你的應用程式會徹底失聯。這種複雜的體位,你必須用 Custom Domain,不能用 route。這坑,真的是摔斷腿才知道。

路線 C:死盯著 referer 找真心人

怎麼做:在你自己的網頁上,死死盯著每個訪客的 Referer,把那些打從 AI 平台過來的痴情種挑出來。這條路跟前兩條完全是平行的,前兩條防的是無情的機器,這條找的是有溫度的活人。

殘酷現實:這是三條路裡最廉價的 (你的分析工具大概早就默默在記 referer 了),但也是最容易看走眼的。就像我們說的,有些平台大方留名、有些死不認帳、有些只肯說一半。「AI 導流」這個數字,不是捧得太高就是貶得太低,兩種極端都隨處可見。

Day 25 我們會花整整一篇文章來教你怎麼看透這個無情的欄位,今天你只要把這句話刻在心底:當你看到所謂的「AI 導流數字」時,先冷冷地問一句,這到底是怎麼算出來的。

一張決定關係走向的決策表

你內心的焦慮 勉強夠用的工具
現在有哪個混蛋在抓我?我要當場踹走他 AI Crawl Control 免費版
我立下的 robots.txt 規矩,到底有沒有被當耳邊風 AI Crawl Control 的 Directives
這個月他對我的渴望,比上個月多還是少 自己存下來 (路線 A 或 B)
他到底摸了我哪幾篇心血,順序是什麼 事件層級的親密資料 (路線 B)
被他蹂躪得最慘的那幾頁,到底有沒有幫我賺到錢 事件層級 + 你自己的私密資料庫 (路線 B)
這些 AI 到底有沒有幫我牽線認識真人 referer 歸因 (路線 C),付費方案可以先看個模糊的輪廓
夠了,我要向這群 AI 公司收過路費 pay per crawl (這是 Day 29 的好戲)

最後的收尾

AI Crawl Control 的免費版,確實是一段關係很好的起點。我真心建議每一個躲在 Cloudflare 背後的網站,今晚就去把它點開。便宜到你根本沒有藉口拒絕。

但他只是一個急診台,不是一個能存放感情的倉庫。那短得可憐的 24 小時視窗、那些被揉成一團的敷衍加總、必須被富豪包養才配擁有的原始 log、還有那道死要錢的導流分析牆。這一切的底線加起來,決定了他只能陪你走到這裡。

走到那條死胡同之後,你需要的是一本專屬於你自己的私密日記。

在沒有 Enterprise 乾爹包養的現實裡,「自己的日記」實務上指的就是親自站在邊緣寫下那支 Worker。這條路能繞開源站快取的失憶症,不需要簽下天價的企業賣身契。更重要的是,你要記下什麼特徵、想回味多久、想跟什麼靈魂契合,這一切,全由你自己作主。

明天 (Day 8),我們就來親手寫下那支 Worker。一個最小的可用版本,能跑、能驗證、能親眼看到他吐出真相:我們怎麼識破他是 AI 爬蟲、怎麼偷偷把紀錄送出而不冷落客人、又該怎麼確認這一切真的在暗中運作。

本文是「你的第一本 AEO x GEO 教戰手冊」系列第 7 天。系列實測與數據由 arrivl 整理 (Growth Analytics for the Agentic Web)。


上一篇
Cloudflare AI Crawl Control 開箱!免費版有什麼
系列文
你的第一本 AEO x GEO 教戰手冊7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言